home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / info-service / gopher / mvs / README.ggmvs < prev    next >
Encoding:
Text File  |  1993-04-08  |  17.6 KB  |  417 lines

  1. ------------------------------------------------------------------------
  2.  
  3.  Copyright (c) The Charles Stark Draper Laboratory, Inc., 1992, 1993
  4.  
  5.  MVS Gopher Server originally by Shawn Hart (Univ. of Delaware).
  6.  
  7.  This software is provided on an "AS IS" basis.  All warranties,
  8.  including the implied warranties of merchantability and fitness,
  9.  are expressly denied.
  10.  
  11.  Provided this copyright notice is included, this software may
  12.  be freely distributed and not offered for sale.
  13.  
  14.  Changes or modifications may be made and used only by the maker
  15.  of same, and not further distributed.  Such modifications should
  16.  be mailed to the author for consideration for addition to the
  17.  software and incorporation in subsequent releases.
  18.  
  19. ------------------------------------------------------------------------
  20.  
  21.  MVS Gopher Client - Version 2 Release 1 - March 1993
  22.  
  23.  Author:          Steve Bacher <seb1525@mvs.draper.com>
  24.  
  25.  MVS Gopher Server
  26.  
  27.  Author:          Shawn Hart   <shawn.hart@mvs.udel.edu>
  28.  Enhancements:    Steve Bacher <seb1525@mvs.draper.com>
  29.  Customizations:  Lou Joseph   <CWMY5C@IRISHMVS.CC.ND.EDU>
  30.  
  31. ------------------------------------------------------------------------
  32.  
  33.  Contents of PDS's belonging to Gopher distribution:
  34.  
  35.  Member     PDS Type    Description
  36.  
  37.  $$README   CNTL        This file
  38.  ACCESS     CNTL        Sample server access file
  39.  ALLOAD     CNTL        JCL to allocate GOPHER load library
  40.  COMPILEC   CNTL        JCL to compile and link C source for client
  41.  COMPILES   CNTL        JCL to compile and link C source for server
  42.  GOPHERD    CNTL        JCL to run the GOPHER server in batch (No TSO)
  43.  GOPHERT    CNTL        JCL to run the GOPHER server in batch (w. TSO)
  44.  HELP       CNTL        TSO Help for Gopher client (with XPROC support)
  45.  HELQ       CNTL        TSO Help for Gopher client (without XPROC)
  46.  INSTALLC   CNTL        How to install the GOPHER MVS client
  47.  INSTALLS   CNTL        How to install the GOPHER MVS server
  48.  MENU       CNTL        Initial Gopher server menu
  49.  PARMS      CNTL        Sample Gopher startup parameters
  50.  GOPHER     CLIST       Exec by which users invoke the Gopher client
  51.  NNMFIUCV   CLIST       Exec to check for multiple socket applications
  52.  HOSTNAME   CLIST       Sample "hostname" command for REXX feature
  53.  TSOHELP    CLIST       Sample REXX exec for Gopher TSO HELP menu hole
  54.  GGM...     PANEL       ISPF regular panels
  55.  GG...      H           C headers for compilation
  56.  GG...      C           C source for compilation
  57.  ABOUT...   ABOUT       "About This Gopher" text
  58.  
  59. --------------------------------------------------------------------
  60.  
  61. Where to Go from Here:
  62.  
  63.  To install the GOPHER MVS client, read member INSTALLC.
  64.  
  65.  To install the GOPHER MVS server, read member INSTALLS.
  66.  
  67. Note:
  68.  
  69.  You may install only the client, only the server, or both the
  70.  client and the server.  It is purely up to what your needs are.
  71.  
  72. --------------------------------------------------------------------
  73.  
  74. Changes:
  75.  
  76.  10/19/92 - Improvements in initial startup and GOPHERRC customization
  77.  12/07/92 - Customizations to support SNS/TCPAccess
  78.  03/20/93 - Version 2:  Improved browse function
  79.                         Printing support
  80.                         Bookmark support
  81.                         New commands: PRT, INFO, MENU, BOOKMARK
  82.                         Configurable startup parameter file
  83.                         Ability to run multiple servers on same MVS
  84.  
  85. --------------------------------------------------------------------
  86.  
  87.  Questions?  Comments?  Suggestions?  Gripes?  Please email to...
  88.  
  89.  Steve Bacher      <seb@draper.com> or <seb1525@mvs.draper.com>
  90.  
  91.  
  92.  Directions for Installing the GOPHER MVS Client
  93.  
  94.  Assuming the PDS's have been created:
  95.  
  96.  1. Customize the ALLOAD and COMPILEC JCL members to reflect your
  97.  local conventions.  Note:  If you intend to place the executable into
  98.  an existing library, you can suppress that part of the ALLOAD JCL.
  99.  The name of the data set created must match across both members.
  100.  
  101.  2. Customize the GGUSER header file as shown by the comments therein.
  102.  Note in particular the defines for your TCP/IP and your C compiler.
  103.  There are changes to the linkedit JCL that are related to these.
  104.  
  105.  3.  Customize the GOPHER exec to define the names of the MVS libraries
  106.  to contain the panel and load library members.  The load library must
  107.  be the one specified in the ALLOAD JCL, if you are creating it anew.
  108.  Observe the comments relating to the use of LIBDEF and ISPF APPLIDs.
  109.  
  110.  It is in the GOPHER exec that you will also customize the name of the
  111.  default Gopher server.  Note that the user's GOPHERRC file gets built
  112.  from the contents of this exec.
  113.  
  114.  Note that if you install one of the REXX execs, you must also install
  115.  the NNMFIUCV exec in the same library.  This exec implements a rude
  116.  check for an existing TCP/IP socket application (e.g. another GOPHER)
  117.  in a different PIE MultiTSO session.  It prevents your users from
  118.  crashing TCP/IP, so it is highly recommended that you make use of it.
  119.  
  120.  4. If you are running ISPF Version 2 or earlier, edit the GOPHER panels
  121.  whose names begin "GGMP...".  These are popups, and will not work
  122.  under ISPF Version 2 unless you change the )BODY line.  Remove the
  123.  WINDOW(...) parameter from the )BODY line of each panel so that the
  124.  line just says )BODY or )BODY EXPAND(``), as the case may be.
  125.  
  126.  Now, to install:
  127.  
  128.  5. Submit the ALLOAD JCL to allocate the load library from which the
  129.  executable program will be run.  If you intend to place the executable
  130.  into an existing library, you can skip this step, but you should make
  131.  sure that there is no previous load module named GGCLIENT in the load
  132.  library of your choice before you proceed.
  133.  
  134.  6. Submit the COMPILEC JCL to compile all the C sources and create
  135.  the executable Gopher load module.
  136.  
  137.  The first time you run this you can expect a return code of 8 from
  138.  the linkedit.  Like SMP/E, this is OK if the only reason is an IEW0342
  139.  because the "INCLUDE SYSLMOD(GGCLIENT)" did not find an existing load
  140.  module.  If you get IEW0132 (unresolved external reference) or
  141.  IEW0241 (ESD type definition conflict), your linkedit went awry.
  142.  Don't use the resultant load module.  Check the libraries you
  143.  specified on the link step to see what went wrong.
  144.  
  145.  In the future, if you have to recompile individual modules, you can use
  146.  the same JCL to compile only those modules, and the link will include
  147.  the new modules in the existing executable load module.
  148.  
  149.  *********************************************************************
  150.  
  151.  IMPORTANT:  If you are running TCP/IP V2R2 or higher on MVS, you must
  152.  change the following library names in the compile and link JCL:
  153.  
  154.    TCPIP.COMMMAC   should be changed to  TCPIP.SEZACMAC
  155.    TCPIP.COMMTXT   should be changed to  TCPIP.SEZACMTX
  156.  
  157.  If you are using SNS/TCPAccess, use these library names, or
  158.  whatever names are defined at your installation:
  159.  
  160.    TCPIP.COMMMAC   should be changed to  SNSTCP.V110.H
  161.    TCPIP.COMMTXT   should be changed to  SNSTCP.V110.CILIB
  162.  
  163.  *********************************************************************
  164.  
  165.  Note:  If you have defined C370V1 in the GGUSER header file, you must
  166.  also include the system linklist load library or libraries containing
  167.  ISPLINK, ISPEXEC and IKJEFF18 when linking.  Otherwise you may delete
  168.  the lines from the linkedit JCL that reference them.
  169.  
  170.  Note:  You need not include the PASCAL libraries or the AMPZMVSB
  171.  module if you are using TCP/IP Version 2 or higher, in which case
  172.  you must also define TCPIPV2 in the GGUSER headerfile.
  173.  
  174.  7. Copy all the members of the panel PDS into the ISPF panel library
  175.  specified in the GOPHER exec.
  176.  
  177.  8. Copy one of the help members (HELP or HELQ) from the CNTL PDS into
  178.  your local TSO HELP library under the name GOPHER.  You may also
  179.  create an additional HELP member called GOPHLOC containing
  180.  information local to your site, if you wish.
  181.  
  182.  Which CNTL member should you use?  If you don't have XPROC, use HELQ.
  183.  If you do have XPROC, use HELP.  You will have to modify your GOPHER
  184.  clist either way.  If you don't have XPROC, you should get it,
  185.  because you can specify more options on Gopher if you do.  You can
  186.  get XPROC via USC's "MVS network server" code distribution service.
  187.  For more information about this, send an email message to
  188.  SERVICE@MVSA.USC.EDU - or SERVICE@USCMVSA, which will normally give
  189.  better results if you have a BITNET (NJE) return address.
  190.  
  191.  9. Create the "About This Gopher" PDS from the ABOUT PDS.  This has
  192.  all the text users should see when they select the "About This Gopher"
  193.  item from the MVS client.  It also contains all the documentation you
  194.  need about setting up the client and the server, as well as creating
  195.  menus and REXX execs for use with MVS Gopher.  You may have already
  196.  done this as part of the server install, but it should also be
  197.  available from the client in "local" (serverless) mode, so that is
  198.  why I mention it here.
  199.  
  200. --------------------------------------------------------------------
  201.  
  202.  Note:  Make sure that the C/370 run time library is available,
  203.  either in the system link list or in the ISPLLIB concatenation,
  204.  before attempting to run GOPHER.
  205.  
  206.  If the C/370 runtime library is not in the link list or otherwise
  207.  available to ISPF at execution time, you may arrange for it to be
  208.  allocated via LIBDEF in the GOPHER exec (I haven't tried this).
  209.  
  210.  
  211.  Directions for Installing the GOPHER MVS Server
  212.  
  213.  Assuming the PDS's have been created:
  214.  
  215.  1. Customize the ALLOAD and COMPILES JCL members to reflect your
  216.  local conventions.  Note:  If you intend to place the executable into
  217.  an existing library, you can suppress that part of the ALLOAD JCL.
  218.  The name of the data set created must match across both members.
  219.  
  220.  2. Customize the GGUSER header file as shown by the comments therein.
  221.  Note in particular the defines for your TCP/IP and your C compiler.
  222.  There are changes to the linkedit JCL that are related to these.
  223.  
  224.  Now, to install:
  225.  
  226.  3. Submit the ALLOAD JCL to allocate the load library from which the
  227.  executable program will be run.  If you intend to place the executable
  228.  into an existing library, you can skip this step, but you should make
  229.  sure that there is no previous load module named GGSERVER or GGSTASK
  230.  in the load library of your choice before you proceed.
  231.  
  232.  4. Submit the COMPILES JCL to compile all the C sources and create
  233.  the executable Gopher load modules.
  234.  
  235.  The first time you run this you can expect return codes of 8 from
  236.  the linkedit.  Like SMP/E, this is OK if the only reason is an IEW0342
  237.  because the "INCLUDE SYSLMOD(...)" did not find an existing load
  238.  module.  If you get IEW0132 (unresolved external reference) or
  239.  IEW0241 (ESD type definition conflict), your linkedit went awry.
  240.  Don't use the resultant load module.  Check the libraries you
  241.  specified on the link step to see what went wrong.
  242.  
  243.  In the future, if you have to recompile individual modules, you can use
  244.  the same JCL to compile only those modules, and the link will include
  245.  the new modules in the existing executable load module.
  246.  
  247.  *********************************************************************
  248.  
  249.  IMPORTANT:  If you are running TCP/IP V2R2 or higher on MVS, you must
  250.  change the following library names in the compile and link JCL:
  251.  
  252.    TCPIP.COMMMAC   should be changed to  TCPIP.SEZACMAC
  253.    TCPIP.COMMTXT   should be changed to  TCPIP.SEZACMTX
  254.  
  255.  If you are using SNS/TCPAccess, use these library names, or
  256.  whatever names are defined at your installation:
  257.  
  258.    TCPIP.COMMMAC   should be changed to  SNSTCP.V110.H
  259.    TCPIP.COMMTXT   should be changed to  SNSTCP.V110.CILIB
  260.  
  261.  *********************************************************************
  262.  
  263.  Note:  If you have defined C370V1 in the GGUSER header file, you must
  264.  also include the system linklist load library containing IKJEFF18
  265.  when linking.  Otherwise you may delete the line from the linkedit
  266.  JCL that references it.
  267.  
  268.  Note:  You need not include the PASCAL libraries or the AMPZMVSB
  269.  module if you are using TCP/IP Version 2 or higher, in which case
  270.  you must also define TCPIPV2 in the GGUSER headerfile.
  271.  
  272.  5. Create the "About This Gopher" PDS from the ABOUT PDS.  This has
  273.  all the text users should see when they select the "About This Gopher"
  274.  item from the MVS client.  It also contains all the documentation you
  275.  need about setting up the client and the server, as well as creating
  276.  menus and REXX execs for use with MVS Gopher.  You may have already
  277.  done this as part of the client install.
  278.  
  279.  *** NOTE: In member MENU, you must change the line that reads
  280.  "PATH=GOPHER.ABOUT.PDS(ABOUT)" to reflect the actual name of your
  281.  ABOUT PDS.  If you are using an earlier distribution of the MVS
  282.  Gopher server that has the line PATH=DD:GGABOUT(ABOUT), then you
  283.  must change that as well, because that won't work to get additional
  284.  PDS members as the user climbs down the Gopher tree.
  285.  
  286.  6. Create your Gopher access file.  See the instructions in the
  287.  "About This Gopher" PDS for the format.
  288.  
  289.  7. Create your Gopher startup parameter file.  This is not required,
  290.  but may be used to change compiled-in defaults.  See the PARMS member
  291.  for a default.
  292.  
  293.  8. Allocate a PDS to hold Gopher REXX execs.  This is not required.
  294.  See the TSOHELP exec in the clist library of the distribution for a
  295.  sample application.
  296.  
  297.  9. Create the MVS Gopher started task JCL from either of the samples
  298.  given in GOPHERD and GOPHERT.  The GOPHERT is recommended so that you
  299.  can use REXX execs that issue TSO commands, but you may not want to
  300.  use this for security reasons.  Either way, customize liberally.
  301.  
  302.  Started task parameters:
  303.  
  304.  MODULE=GGSERVER            the Gopher server load module in STEPLIB
  305.  STEPLIB='GOPHER.LOAD'      the load library containing the above
  306.  EXECLIB='GOPHER.EXEC'      the PDS containing server REXX execs
  307.  ACCESS='GOPHER.ACCESS'     the installation access file (sequential)
  308.  ABOUT='GOPHER.ABOUT'       the PDS containing "About This Gopher" info
  309.  MENU='GOPHER.MENU'         the initial gopher menu (sequential)
  310.  PARMS='GOPHER.PARMS'       the server startup file (sequential)
  311.  GPARM=                     the server EXEC parms (e.g. -d for debug)
  312.  
  313.  Note: if you specify GPARM='-D', a GGDEBUG DD must be included.
  314.  
  315.  You are strongly recommended to create 2 started tasks:  one for
  316.  non-REXX requests with MTFTASKS set to 8, and one for REXX requests
  317.  with MTFTASKS set to 1 (because of TSO/E multitasking bugs).
  318.  Give each a different port number in the GGPARMS configuration file
  319.  allocated to it.  See sample below.
  320.  
  321.  10. Add the name of the Gopher server started task (the name as it
  322.  appears in SYS1.PROCLIB, not necessarily "GOPHER") to the MVS TCPIP
  323.  profile data set (or have your MVS TCP/IP system programmer do it).
  324.  In the examples below, let's say you've called it GOPHSRV.  Add this
  325.  in 2 places:
  326.  
  327.    (a) under AUTOLOG, so that TCP/IP will start the Gopher server
  328.        automatically (a la inetd for unix) when a client connects.
  329.        Just add the name to the list (e.g. GOPHSRV).
  330.  
  331.    (b) under PORT, so nobody can spoof the Gopher port.  The format
  332.        here is:   70 TCP GOPHSRV
  333.  
  334.  Repeat both for whatever number of Gopher server started tasks you
  335.  create (with different port numbers).
  336.  
  337. --------------------------------------------------------------------
  338.  
  339.  Note:  Make sure that the C/370 run time library is available,
  340.  either in the system link list or in the STEPLIB concatenation,
  341.  before attempting to run GOPHER.
  342.  
  343. --------------------------------------------------------------------
  344.  
  345. Following is an example of how to define two Gopher servers.
  346.  
  347. 'SYS1.PROCLIB(GOPHSRV)' - the primary gopher server (port 70)
  348.                           will not run any REXX execs
  349.  
  350. //GOPHERD  PROC MODULE=GGSERVER,
  351. //         STEPLIB='GOPHER.LOAD',
  352. //         ACCESS='GOPHER.ACCESS(ACCESS)',
  353. //         PARMS='GOPHER.ACCESS(PARMS)',
  354. //         MENU='GOPHER.ACCESS(MENU)',
  355. //         STDERR='*',
  356. //         STDOUT='*',
  357. //         GPARM=
  358. //*
  359. //GOPHERD  EXEC PGM=&MODULE,PARM='&GPARM'
  360. //STEPLIB  DD   DISP=SHR,DSN=&STEPLIB
  361. //SYSERR   DD   SYSOUT=&STDERR
  362. //SYSPRINT DD   SYSOUT=&STDOUT
  363. //SYSIN    DD   DUMMY
  364. //GGDEBUG  DD   SYSOUT=*
  365. //GGACCESS DD   DISP=SHR,DSN=&ACCESS
  366. //GGPARMS  DD   DISP=SHR,DSN=&PARMS
  367. //GGGOPHER DD   DISP=SHR,DSN=&MENU
  368.  
  369. 'SYS1.PROCLIB(GOPHSRV2)' - the secondary gopher server (port 1570)
  370.                            will run REXX execs
  371.  
  372. //GOPHERD2 PROC MODULE=GGSERVER,
  373. //         STEPLIB='GOPHER.LOAD',
  374. //         EXECLIB='GOPHER.EXEC',
  375. //         ACCESS='GOPHER.ACCESS(ACCESS2)',
  376. //         PARMS='GOPHER.ACCESS(PARMS2)',
  377. //         MENU='GOPHER.ACCESS(MENU2)',
  378. //         VIO=VIO,
  379. //         STDERR='*',
  380. //         STDOUT='*',
  381. //         GPARM=
  382. //*
  383. //GOPHERD2 EXEC PGM=IKJEFT01,DYNAMNBR=128, PARM='&MODULE &GPARM'
  384. //STEPLIB  DD   DISP=SHR,DSN=&STEPLIB
  385. //SYSEXEC  DD   DISP=SHR,DSN=&EXECLIB  /* needed for %-invoked execs */
  386. //GGEXEC   DD   DISP=SHR,DSN=&EXECLIB
  387. //SYSTSPRT DD   UNIT=&VIO,SPACE=(TRK,(100,100)),RECFM=VBA,LRECL=255
  388. //SYSERR   DD   SYSOUT=&STDERR
  389. //SYSPRINT DD   SYSOUT=&STDOUT
  390. //SYSTSIN  DD   DUMMY
  391. //SYSIN    DD   DUMMY
  392. //GGDEBUG  DD   SYSOUT=*
  393. //GGACCESS DD   DISP=SHR,DSN=&ACCESS
  394. //GGPARMS  DD   DISP=SHR,DSN=&PARMS
  395. //GGGOPHER DD   DISP=SHR,DSN=&MENU
  396.  
  397. 'GOPHER.ACCESS(PARMS)' - startup parameters used by the primary server
  398.  
  399. mtftasks  8    (this is the default)
  400. port      70   (this is the default too)
  401.  
  402. 'GOPHER.ACCESS(PARMS2)'- startup parameters used by the secondary server
  403.  
  404. mtftasks  1       Force single threading to prevent TSO burpages
  405. port      1570    Must be different from primary server's port
  406.  
  407. -----------------------------------------------------------------------
  408.  
  409. I have not included members ACCESS, ACCESS2, MENU and MENU2, but you
  410. will find samples elsewhere in this distribution.  ACCESS and ACCESS2
  411. can be the same, except that you don't need the REXX execs to be in
  412. ACCESS since ACCESS can't run REXX execs.  MENU and MENU2 should be
  413. the same, since you may want to configure various Gopher clients
  414. on other machines to try both MVS servers, but it's up to you.
  415.  
  416.  
  417.